Bug 573321 – additional check in gtk_tree_model_filter_convert_*
authorKristian Rietveld <kris@gtk.org>
Thu, 30 Jul 2009 12:35:09 +0000 (14:35 +0200)
committerKristian Rietveld <kris@gtk.org>
Thu, 30 Jul 2009 18:24:31 +0000 (20:24 +0200)
Added checks to see whether the passed iterators are not the same in
convert_child_iter_to_iter() and iter_to_child_iter() functions in both
the sort and filter models.

Fixes bug 573321, suggestion by Vadim Godunko.

gtk/gtktreemodelfilter.c
gtk/gtktreemodelsort.c

index cc5b86ebbabb31e84201174e815247f532594ff0..c865fccd5da5e411b047e4f5a87e73e1958885a9 100644 (file)
@@ -3037,6 +3037,7 @@ gtk_tree_model_filter_convert_child_iter_to_iter (GtkTreeModelFilter *filter,
   g_return_val_if_fail (filter->priv->child_model != NULL, FALSE);
   g_return_val_if_fail (filter_iter != NULL, FALSE);
   g_return_val_if_fail (child_iter != NULL, FALSE);
+  g_return_val_if_fail (filter_iter != child_iter, FALSE);
 
   filter_iter->stamp = 0;
 
@@ -3076,6 +3077,7 @@ gtk_tree_model_filter_convert_iter_to_child_iter (GtkTreeModelFilter *filter,
   g_return_if_fail (child_iter != NULL);
   g_return_if_fail (filter_iter != NULL);
   g_return_if_fail (filter_iter->stamp == filter->priv->stamp);
+  g_return_if_fail (filter_iter != child_iter);
 
   if (GTK_TREE_MODEL_FILTER_CACHE_CHILD_ITERS (filter))
     {
index 1dbdda41f8abf1b2c8a8ff5634b66a2158409bb1..4525bca8b1a7617bbabcdc9956cdc9ac707ecf14 100644 (file)
@@ -2084,6 +2084,7 @@ gtk_tree_model_sort_convert_child_iter_to_iter (GtkTreeModelSort *tree_model_sor
   g_return_val_if_fail (tree_model_sort->child_model != NULL, FALSE);
   g_return_val_if_fail (sort_iter != NULL, FALSE);
   g_return_val_if_fail (child_iter != NULL, FALSE);
+  g_return_val_if_fail (sort_iter != child_iter, FALSE);
 
   sort_iter->stamp = 0;
 
@@ -2182,6 +2183,7 @@ gtk_tree_model_sort_convert_iter_to_child_iter (GtkTreeModelSort *tree_model_sor
   g_return_if_fail (tree_model_sort->child_model != NULL);
   g_return_if_fail (child_iter != NULL);
   g_return_if_fail (VALID_ITER (sorted_iter, tree_model_sort));
+  g_return_if_fail (sorted_iter != child_iter);
 
   if (GTK_TREE_MODEL_SORT_CACHE_CHILD_ITERS (tree_model_sort))
     {